import { defineConfig } from 'vite'
import vue from '@vitejs/plugin-vue'

//引入路径@符
import path from 'path'

//加载自动生成路由插件
import Pages from 'vite-plugin-pages'

//加载模块布局layout
import Layouts from 'vite-plugin-vue-layouts'

//自动导入参数的的插件
import AutoImport from 'unplugin-auto-import/vite'

//加载自定义组件的插件
import Components from 'unplugin-vue-components/vite'
// https://vite.dev/config/
export default defineConfig({
	server:{
		proxy: { //反向代理
			'/shop' :{	//设置反向代理的规则
				//目标地址
				target: 'http://www.fast.com/shop', //将localhost:5173 转换成target
				// target: 'http://zlyfast.sleep-888.com/shop',     //线上地址
				changeOrigin:true,  //跨域 axios -> vite(changeOrigin) -> nodejs
				//替换掉shop前缀 防止多个shop地址
				rewrite: (path) => path.replace(/^\/shop/, '')
			}
		}
	},
	resolve:{
		alias:{
			'@': path.resolve(__dirname, 'src'),
			'vue': 'vue/dist/vue.esm-bundler.js'
		},
	},
	plugins: [
		vue(),
		AutoImport({
			imports: ['vue', 'vue-router', 'pinia'],
			dts: 'src/auto-import.d.ts' //加载全局钩子的文件
		}),
		Components({
			// 指定组件位置，默认是src/components
			dirs: ['src/components'],
			// ui库解析器
			// resolvers: [ElementPlusResolver()],
			extensions: ['vue'],
			// 配置文件生成位置
			dts: 'src/components.d.ts'
		}),
		Pages({
			dirs: 'src/views',  // 需要生成路由的组件目录
			exclude: ['**/components/*.vue']  // 排除在外的目录，即所有 components 目录下的 .vue 文件都不会生成路由
		}),
		Layouts({
		layoutsDirs: 'src/layout',  // 布局模板文件存放目录
		defaultLayout: 'index'  // 默认布局，对应 src/layout/index.vue
		})
	],
})
